package cn.edu.sgu.www.mhxysy.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.*;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * @author heyunlin
 * @version 1.0
 */
@Data
public class RoleAccountDTO implements Serializable {
    private static final long serialVersionUID = 18L;

    /**
     * 角色ID
     */
    @NotEmpty(message = "角色ID不能为空")
    @Pattern(regexp = "^[1-4]\\d{5,8}$", message = "角色ID的值不规范")
    private String id;

    /**
     * 角色名
     */
    @NotEmpty(message = "角色名不能为空")
    private String name;

    /**
     * 角色等级
     */
    @Min(value = 1, message = "角色等级不合法")
    @Max(value = 115, message = "角色等级不合法")
    @NotNull(message = "等级不能为空")
    private Integer grade;

    /**
     * 人物评分
     */
    @NotNull(message = "角色评分不能为空")
    @Min(value = 1, message = "角色评分不合法")
    private Integer score;

    /**
     * 金币
     */
    @NotNull(message = "金币不能为空")
    private Integer jinbi;

    /**
     * 账号ID
     */
    @NotEmpty(message = "账号不能为空")
    private String accountId;

    /**
     * 门派ID
     */
    @NotNull(message = "门派不能为空")
    private Integer schoolId;

    /**
     * 服务器ID
     */
    @NotNull(message = "服务器不能为空")
    private Integer serverId;

    /**
     * 帮派ID
     */
    private Integer gangId;

    /**
     * 角色造型ID
     */
    @NotNull(message = "角色造型不能为空")
    private Integer modelingId;

    /**
     * 账号创建时间
     */
    @NotNull(message = "账号创建时间不能为空")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime birthday;
}